"""
# 创建游戏角色类
# 游戏角色的属性有名字、武器名称
# 游戏角色有自我介绍的方法、攻击的方法
# 通过类实例化对象
class Role:
    def __init__(self, name, weapon):
        self.name = name
        self.weapon = weapon
    def say(self):
        return f'我是{self.name}，使用的武器是{self.weapon}'
    def attack(self, target):
        return f'{self.name}正在使用{self.weapon}攻击{target}'
r1 = Role('张飞', '丈八蛇矛')
print(r1.say())
print(r1.attack('吕布'))
"""
# 定义武器类，包含的属性有武器名称、武器攻击力；方法有必杀技能
class Weapon:
    def __init__(self, wname, strength):
        self.wname = wname
        self.strength = strength
    def skill(self, title):
        return f'{self.wname}的必杀技能是{title}'
# 通过武器类创建武器对象
w1 = Weapon('青龙偃月刀', 15)
w2 = Weapon('方天画戟', 20)
w3 = Weapon('丈八蛇矛', 10)
# print(w1.skill('翻江倒海'))
# print(w2.skill('亢龙有悔'))
# 角色使用的武器，通过对象
class Role:
    def __init__(self, name, weapon):
        self.name = name
        self.weapon = weapon
    def say(self):
        return f'我是{self.name}，使用的武器是{self.weapon.wname}'
    def attack(self, target):
        return f'{self.name}正在使用{self.weapon.wname}攻击{target}，对方掉了{self.weapon.strength}滴血'
# 创建角色对象，把武器对象提供给角色
r1 = Role('张飞', w1)
# 获取张飞的武器名称和攻击力
# print(r1.weapon.wname, r1.weapon.strength)
print(r1.attack('吕布'))